//
//  main.m
//  Protocol1
//
//  Created by cora1n on 14-8-12.
//  Copyright (c) 2014年 devwu. All rights reserved.
//

#import <Foundation/Foundation.h>
//#import "UPan.h"
//#import "FengShan.h"
#import "M-Pan.h"
int main(int argc, const char * argv[])
{
//    UPan * u1 = [[UPan alloc]init];
//    [u1 传输];
//    FengShan * fengShan = [[FengShan alloc]init];
//    [fengShan 传输];

    M_Pan * mp1 = [[M_Pan alloc]init];
//    [mp1 传输1];
    
//    协议相关方法
//    1.判断某类是否实现了协议
    BOOL b = [mp1 conformsToProtocol: NSProtocolFromString(@"USBProtocol")];
    if (b) {
        NSLog(@"mp1 遵循USBProtocol");
    }
//    2.判断协议中的方法是否被实现
    BOOL b2 = [mp1 respondsToSelector:@selector(传输1)];
    //注意事项,在调用协议方法时,必须对协议方法进行判断.
    //只在相应了该方法时,才进行调用
    //如果该协议方法未被实现而直接调用,会发生异常
    if (b2) {
        NSLog(@"mp1 实现了 传输1 方法");
        [mp1 传输1];
    }
    else
    {
        NSLog(@"mp1 没有实现 传输1 方法");
    }
    return 0;
}

